package com.gdust.spzx.common.log.annotation;

import com.gdust.spzx.common.log.aspect.LogAspect;
import org.springframework.context.annotation.Import;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * ClassName: EnableLogAspect
 * Package: com.gdust.spzx.common.log.annotation
 * Description:自定义注解，用于在其他业务服务中启用 LogAspect 切面类。
 * 思路：想让LogAspect这个切面类在其他的业务服务中进行使用，
 * 那么就需要该切面类纳入到Spring容器中。Spring Boot默认会扫描和启动类所在包相同包中的bean以及子包中的bean。
 * 而LogAspect切面类不满足扫描条件，因此无法直接在业务服务中进行使用。那么此时可以通过自定义注解进行实现
 *
 * @Author syun
 * @Create 2024/12/25 12:24
 * @Version 1.0
 */
@Target({ElementType.TYPE}) // 指定该注解可以用在类或接口上
@Retention(RetentionPolicy.RUNTIME) // 指定该注解在运行时有效
@Import(value = LogAspect.class) // 显式导入 LogAspect 切面类到 Spring 容器中
public @interface EnableLogAspect {
    // 无需定义额外属性，标注该注解即可启用日志切面
}
